Skip to main content

ES9 ES2018

字符串​

放松对标签模板里字符串转义的限制:遇到不合法的字符串转义返回undefined,并且从raw上可获取原字符串


对象​

扩展运算符"..."​

转换对象为用逗号分隔的参数序列({ ...obj },相当于rest/spread参数的逆运算)

应用场景:


Async​

异步迭代器 await ... of​

await可以和for...of循环一起使用,以串行的方式运行异步操作

async function process(array) {
for await (let i of array) {
// doSomething(i);
}
}

正则​

命名捕获组​

const reg = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
const match = reg.exec('2021-02-23');

反向断言​

(?=p)、(?<=p)  p 前面(位置)、p 后面(位置)
(?!p)、(?<!p>) 除了 p 前面(位置)、除了 p 后面(位置)

dotAll模式​

正则表达式中点.匹配除回车外的任何单字符,标记s改变这种行为,允许行终止符的出现

/hello.world/.test('hello\nworld'); // false

Promise​

Promise.finally()​

Promise.resolve().then().catch(e => e).finally();